package Alibaba;

import common.ListNode;

/**
 * @author zhangmin
 * @create 2022-01-19 11:25
 * 203. 移除链表元素
 * 给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。
 * 1、双指针，慢指针指向不含val的最后一个节点，快指针遍历链表
 * 2、生成新链表
 */
public class removeElements203 {

    public ListNode removeElements(ListNode head, int val) {
        ListNode newhead=new ListNode(-1);
        ListNode p=newhead;
        while (head!=null){
            if (head.val==val) {
                head=head.next;
                continue;
            }
            p.next=new ListNode(head.val);
            p=p.next;
            head=head.next;
        }
        return newhead.next;
    }
}
